package com.nacrtstudio.webgiftshop.model.shop;

import java.util.Date;
import java.util.Set;

import org.apache.tapestry5.beaneditor.NonVisual;
import org.apache.tapestry5.beaneditor.Validate;

import com.nacrtstudio.webgiftshop.util.shop.Role;

public interface User {
	@NonVisual
	public String getAvatar();
	public void setAvatar(String avatar);
	public String getFirstName();
	public void setFirstName(String firstName);
	public String getLastName();
	public void setLastName(String lastName);
	@Validate("required,regexp=^[0-9a-zA-Z._%+-]+@[0-9a-zA-Z]+[\\.]{1}[0-9a-zA-Z]+[\\.]?[0-9a-zA-Z]+$")
	public String geteMail();
	public void seteMail(String eMail);
	public Date getDateOfBirth();
	public void setDateOfBirth(Date dateOfBirth);
	public String getPhoneNumber();
	public void setPhoneNumber(String phoneNumber);
	
	public Address getAddress();
	public void setAddress(Address address);
	
	public String getUsername();
	public void setUsername(String username);
	public String getPassword();
	public void setPassword(String password);
	@NonVisual
	public Date getCreated();
	public void setCreated(Date created);
	
	
	
	
	public Cart getCart();
	public void setCart(Cart cart);
	public Set<Order> getOrders();
	public void setOrders(Set<Order> orders);
	public Set<Comment> getComments();
	public void setComments(Set<Comment> comments);
	
	
	
	@NonVisual
	public Long getFacebookId();
	public void setFacebookId(Long facebookId);
	@NonVisual
	public boolean isAccountLocked();
	public void setAccountLocked(boolean accountLocked);
	@NonVisual
	public boolean isCredentialsExpired();
	public void setCredentialsExpired(boolean credentialsExpired);
	
	public Set<Role> getRoles();
	public void setRoles(Set<Role> roles);
}
